A multi-level non-volatile memory stores more than one bit per cell. Multi-level NAND memory having four (4) possible voltage levels per cell, may represent two (2) bits of data per cell. NAND memory having eight (8) voltage levels per cell may be referred to as triple-level cell (TLC) memory and may represent three (3) bits of data per cell. NAND memory having sixteen (16) voltage levels per cell may be referred to as quad-level cell (QLC) memory and may represent four (4) bits of data per cell. With some NAND flash devices, erasing a block may set all bit values to 1. Programming may refer to the process of changing a bit from a bit value of 1 to a bit value of 0. Various techniques such as error correction coding (ECC) and exclusive-or (XOR) parity may be used for correction of various memory errors.